<html>
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport"
			content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
		<link rel="stylesheet" href="./css/cdn.bootcss.com_github-markdown-css_2.10.0_github-markdown.min.css">
	</head>
	<body>
		<div class="markdown-body">
<h1 id="">源文件结构</h1>
<pre><code class="javascript language-javascript">{
    "id": "",//来源ID 必填
    "title": "",//名称 必填
    "logo": "",//图标 
    "href": "",//域名 必填
    "dynamic": "",//动态域名规则
    "security": "",//防盗链域名，多个以逗号分割 
    "isAdult": false,//是否包含敏感内容 必填
    "fnc": {},//自定义方法，对于一些实在复杂的请求可以写入这里，然后在规则里调用,
    "search": [],//搜索
    "find": [],//发现
    "random": [],//随机
    "detail": [],//详情
    "catalog": [],//目录
    "character": [],//用户
    "recome": [],//推荐
    "context": [],//正文
    "barrage": [],//弹幕
    "lyric": [],//歌词
    "comment": []//评论
}
</code></pre>
<h1 id="-1">源规则内置方法</h1>
<ul>
<li>HTMLParser<ul>
<li>说明：解析HTML文本，用于获取HTML文本中的数据 详情<a href="https://ext.dcloud.net.cn/plugin?id=263">HTMLParser HTML 文本解析器</a></li>
<li>使用：new HTMLParser('HTML字符串')</li></ul></li>
<li>Base64<ul>
<li>说明：Base64加密解密</li>
<li>使用：Base64.encode('dankogai'); Base64.decode('ZGFua29nYWk=');</li></ul></li>
<li>CryptoJS<ul>
<li>说明：CryptoJS工具</li></ul></li>
<li>Xhr<ul>
<li>说明：请求方法 基于plus.net.XMLHttpRequest 详情<a href="https://www.html5plus.org/doc/zh_cn/xhr.html">plus.net.XMLHttpRequest</a></li>
<li>使用：Xhr.get(url,options); Xhr.post(url,options);</li></ul></li>
<li>Http<ul>
<li>说明：请求方法 基于uni.request 详情<a href="https://uniapp.dcloud.net.cn/api/request/request.html">uni.request</a></li>
<li>使用：Http.get(url,options); Http.post(url,options);</li></ul></li>
<li>GBK<ul>
<li>说明：将UTF-8的字符转化为GBK字符串</li>
<li>使用：GBK('关键词')</li></ul></li>
<li>HtmlDecode<ul>
<li>说明：转义HTML字符串中的一些转义序列</li>
<li>使用：HtmlDecode('html字符串')</li></ul></li>
<li>DecodeUnicode<ul>
<li>说明：将16进制转为字符（主要用于小说自定义字体）</li>
<li>使用：DecodeUnicode('16进制')</li></ul></li>
<li>DateFormat<ul>
<li>说明：时间格式化工具</li>
<li>使用：DateFormat(时间戳)</li></ul></li>
<li>TimeToseconds<ul>
<li>说明：时间转秒数工具</li>
<li>使用：TimeToseconds('01:20') == 80</li></ul></li>
<li>Zeroize<ul>
<li>说明：补零</li>
<li>使用：Zeroize(1) == '01'</li></ul></li>
<li>ConvertUrlQueryObject<ul>
<li>说明：获取href链接中的参数，返回对象</li>
<li>使用：ConvertUrlQueryObject('https://www.baidu.com?keyword=关键词&amp;page=1') == {keyword: '关键词', page: 1}</li></ul></li>
</ul>
<h1 id="-2">源规则内置变量</h1>
<ul>
<li>page<ul>
<li>请求页数（仅限分页请求）</li></ul></li>
<li>keyword<ul>
<li>搜索请求关键词（仅限搜索请求）</li></ul></li>
<li>lastResult<ul>
<li>继承上个规则的结果</li></ul></li>
<li>baseUrl<ul>
<li>请求源基础域名（即源文件填写的href）</li></ul></li>
<li>requestUrl<ul>
<li>当前请求的url（实际请求链接，但不包含params中的参数）</li></ul></li>
<li>response<ul>
<li>当前请求返回内容（只有res.data部分）</li></ul></li>
<li>detailUrl<ul>
<li>当前资源的详情url（仅限资源请求）</li></ul></li>
<li>catalogUrl<ul>
<li>当前资源的目录url（仅限资源请求）</li></ul></li>
<li>characterUrl<ul>
<li>当前资源的用户url（仅限资源请求）</li></ul></li>
<li>recomeUrl<ul>
<li>当前资源的推荐url（仅限资源请求）</li></ul></li>
<li>contextUrl<ul>
<li>当前资源的正文url（仅限资源请求）</li></ul></li>
<li>barrageUrl<ul>
<li>当前资源的弹幕url（仅限资源请求）</li></ul></li>
<li>lyricUrl<ul>
<li>当前资源的歌词url（仅限资源请求）</li></ul></li>
<li>commentUrl<ul>
<li>当前资源的评论url（仅限资源请求）</li></ul></li>
</ul>
<h1 id="-3">源规则声明符（所有声明符都是@开头:结尾）</h1>
<ul>
<li>@text:<ul>
<li>说明：字符串声明符（该声明符优先级最高，当出现时表明该段规则全部以字符串的形式输出）</li>
<li>通常形式：@text:玄幻小说（输出 '玄幻小说'）</li>
<li>可省略：玄幻小说（输出 '玄幻小说'）</li>
<li>当前不可省略：@text:@sync:return '玄幻小说'（输出 "@sync:return '玄幻小说'"）</li>
<li>使用&lt;js&gt;包裹需要执行的规则：这是一本&lt;js&gt;@sync:return '玄幻小说'&lt;/js&gt;（输出 '玄幻小说'）</li></ul></li>
<li>@json:<ul>
<li>说明：JSON数据声明符</li>
<li>通常形式：@json:data.tag.list（：['玄幻','科幻','古风']）（输出 ['玄幻','科幻','古风']）</li>
<li>选中数组中的某一项：@json:data.tag[0]（：['玄幻','科幻','古风']）（输出 '玄幻'）</li></ul></li>
<li>@sel:<ul>
<li>说明：selector选择器声明符</li>
<li>id：ID选择器</li>
<li>class：类选择器</li>
<li>tag：标签选择器</li>
<li>attr：标签属性</li>
<li>text：标签文本内容</li>
<li>content：标签全部内容</li>
<li>&gt;&gt;：选择器连接符号</li>
<li>通常形式：@sel:class.item&gt;&gt;class.style&gt;&gt;text（：玄幻小说）（输出 '玄幻小说'）</li>
<li>指定多个选择器的第一项：@sel:class.list[0]&gt;&gt;class.style&gt;&gt;text（：玄幻小说）（输出 '玄幻小说'）</li>
<li>指定多个选择器的第一项（省略）：@sel:class.list&gt;&gt;class.style&gt;&gt;text（：玄幻小说）（输出 '玄幻小说'）</li>
<li>ID选择器：@sel:id.content&gt;&gt;class.style&gt;&gt;text（：玄幻小说）（输出 '玄幻小说'）</li>
<li>标签选择器：@sel:tag.ul&gt;&gt;tag.li&gt;&gt;text（：玄幻小说）（输出 '玄幻小说'）</li>
<li>标签属性：@sel:tag.img&gt;&gt;attr.src（：https://image.baidu.com/18293810932.jpg）（输出 'https://image.baidu.com/18293810932.jpg'）</li>
<li>标签文本内容：@sel:class.result&gt;&gt;text（：&lt;div&gt;这是一段文本&lt;/div&gt;）（输出 '这是一段文本'）</li>
<li>标签全部内容：@sel:class.result&gt;&gt;content（：&lt;div&gt;这是一段文本&lt;/div&gt;）（输出 '&lt;div&gt;这是一段文本&lt;/div&gt;'）</li></ul></li>
<li>@sync:<ul>
<li>说明：同步方法声明符</li>
<li>lastResult：上类规则的结果</li>
<li>attributes：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>innerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>outerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>通常形式：@sync:return '玄幻小说'（输出 '玄幻小说'）</li>
<li>继承上类规则的结果：@sel:class.item&gt;&gt;class.style&gt;&gt;text（：玄幻小说）@sync:return lastResult.replace('小说','')（输出 '玄幻'）</li>
<li>调用attributes：@sel:class.item&gt;&gt;class.style（：&lt;div title="玄幻小说"&gt;玄幻小说&lt;/div&gt;）@sync:return lastResult.attributes.title.replace('小说','')（输出 '玄幻'）</li>
<li>调用innerHTML：@sel:class.item&gt;&gt;class.style（：&lt;div title="玄幻小说"&gt;玄幻小说&lt;/div&gt;）@sync:return lastResult.innerHTML.trim().replace('小说','')（输出 '玄幻'）</li>
<li>调用outerHTML：@sel:class.item&gt;&gt;class.style（：&lt;div title="玄幻小说"&gt;玄幻小说&lt;/div&gt;）@sync:return lastResult.outerHTML.trim()（输出 '&lt;div title="玄幻小说"&gt;玄幻小说&lt;/div&gt;'）</li></ul></li>
<li>@async:<ul>
<li>说明：异步方法声明符</li>
<li>lastResult：上类规则的结果</li>
<li>attributes：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>innerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>outerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>通常形式：@async:return await Http.get('https://www.baidu.com/category/1.html')（输出 '请求结果'）</li>
<li>继承上类规则的结果：@json:data.result.list[0].url（：https://www.baidu.com/category/1.html）@async:return await Http.get(lastResult)（输出 '请求结果'）</li>
<li>调用attributes：@sel:class.item&gt;&gt;class.style（：&lt;a href="https://www.baidu.com/book/1231"&gt;玄幻小说&lt;/a&gt;）@sync:return await Http.get(lastResult.attributes.href)（输出 '请求结果'）</li></ul></li>
<li>@for:<ul>
<li>说明：for遍历数据声明符</li>
<li>item：遍历数据的值</li>
<li>key：遍历数据的索引</li>
<li>result：返回的结果参数</li>
<li>attributes：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>innerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>outerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>通常形式：@json:data.tag.list（：[{name: '玄幻'},{name:'科幻'},{name:'古风'}]）@for:result.push(item)（输出 ['玄幻','科幻','古风']）</li>
<li>调用attributes：@sel:class.item&gt;&gt;tag.span（：&lt;a title="玄幻"&gt;玄幻&lt;/a&gt;&lt;a title="科幻"&gt;科幻&lt;/a&gt;&lt;a title="古风"&gt;古风&lt;/a&gt;）@for:result.push(item.attributes.title)（输出 ['玄幻','科幻','古风']）</li>
<li>调用innerHTML：@sel:class.item&gt;&gt;tag.span（：&lt;span&gt;玄幻&lt;/span&gt;&lt;span&gt;科幻&lt;/span&gt;&lt;span&gt;古风&lt;/span&gt;）@for:result.push(item.innerHTML.trim())（输出 ['玄幻','科幻','古风']）</li>
<li>调用outerHTML：@sel:class.item&gt;&gt;tag.span（：&lt;span&gt;玄幻&lt;/span&gt;&lt;span&gt;科幻&lt;/span&gt;&lt;span&gt;古风&lt;/span&gt;）@for:result.push(item.outerHTML)（输出 '&lt;span&gt;玄幻&lt;/span&gt;&lt;span&gt;科幻&lt;/span&gt;&lt;span&gt;古风&lt;/span&gt;）</li></ul></li>
<li>@map:<ul>
<li>说明：map遍历数据声明符</li>
<li>item：遍历数据的值</li>
<li>key：遍历数据的索引</li>
<li>通常形式：@json:data.tag.list（：[{name: '玄幻'},{name:'科幻'},{name:'古风'}]）@map:item.name（输出 ['玄幻','科幻','古风']）</li>
<li>复杂情况下：@json:data.tag.list（：[{name: '玄幻'},{name:'科幻'},{name:'古风'}]）@map:{ var name = item.name;return name; }（输出 ['玄幻','科幻','古风']）</li>
<li>调用attributes：@sel:class.item&gt;&gt;tag.span（：&lt;a title="玄幻"&gt;玄幻&lt;/a&gt;&lt;a title="科幻"&gt;科幻&lt;/a&gt;&lt;a title="古风"&gt;古风&lt;/a&gt;）@map:item.attributes.title（输出 ['玄幻','科幻','古风']）</li>
<li>调用innerHTML：@sel:class.item&gt;&gt;tag.span（：&lt;span&gt;玄幻&lt;/span&gt;&lt;span&gt;科幻&lt;/span&gt;&lt;span&gt;古风&lt;/span&gt;）@map:item.innerHTML.trim()（输出 ['玄幻','科幻','古风']）</li>
<li>调用outerHTML：@sel:class.item&gt;&gt;tag.span（：&lt;span&gt;玄幻&lt;/span&gt;&lt;span&gt;科幻&lt;/span&gt;&lt;span&gt;古风&lt;/span&gt;）@map:item.outerHTML（输出 '&lt;span&gt;玄幻&lt;/span&gt;&lt;span&gt;科幻&lt;/span&gt;&lt;span&gt;古风&lt;/span&gt;）</li></ul></li>
<li>@filter:<ul>
<li>说明：筛选声明符</li>
<li>item：遍历数据的值</li>
<li>key：遍历数据的索引</li>
<li>attributes：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>innerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>outerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>通常形式：@json:data.tag.list（：[{name: '玄幻'},{name:'科幻'},{name:'古风'}]）@filter:item.name != '古风'（输出 ['玄幻','科幻']）</li>
<li>复杂情况下：@json:data.tag.list（：[{name: '玄幻'},{name:'科幻'},{name:'古风'}]）@filter:{ var name = item.name;return name != '古风'; }（输出 ['玄幻','科幻']）</li>
<li>调用attributes：@sel:class.item&gt;&gt;tag.span（：&lt;a title="玄幻"&gt;玄幻&lt;/a&gt;&lt;a title="科幻"&gt;科幻&lt;/a&gt;&lt;a title="古风"&gt;古风&lt;/a&gt;）@filter:item.attributes.title != '古风'（输出 ['玄幻（selector选择器）','科幻（selector选择器）']）</li>
<li>调用innerHTML：@sel:class.item&gt;&gt;tag.span（：&lt;span&gt;玄幻&lt;/span&gt;&lt;span&gt;科幻&lt;/span&gt;&lt;span&gt;古风&lt;/span&gt;）@filter:item.innerHTML.trim() != '古风'（输出 ['玄幻（selector选择器）','科幻（selector选择器）']）</li></ul></li>
<li>@sort:<ul>
<li>排序声明符</li>
<li>a：第一个对比项</li>
<li>b：第二个对比项</li>
<li>attributes：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>innerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>outerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>通常形式：@json:data.chapter.list（：[{chapter: 2,name:'第二章'},{chapter: 1,name:'第一章'},{chapter: 3,name:'第三章'}]）@sort:a.chapter - b.chapter（输出 [{chapter: 1,name:'第一章'},{chapter: 2,name:'第二章'},{chapter: 3,name:'第三章'}]）</li>
<li>复杂情况下：@json:data.chapter.list（：[{chapter: 2,name:'第二章'},{chapter: 1,name:'第一章'},{chapter: 3,name:'第三章'}]）@sort:{var aChapter = a.chapter;var bChapter = b.chapter;return aChapter - bChapter}（输出 [{chapter: 1,name:'第一章'},{chapter: 2,name:'第二章'},{chapter: 3,name:'第三章'}]）</li>
<li>调用attributes：@sel:class.item&gt;&gt;tag.span（：&lt;a index="3"&gt;玄幻&lt;/a&gt;&lt;a index="1"&gt;科幻&lt;/a&gt;&lt;a index="2"&gt;古风&lt;/a&gt;）@sort:a.attributes.index - b.attributes.index（输出 ['科幻（selector选择器）','古风（selector选择器）','玄幻（selector选择器）']）</li></ul></li>
<li>@find:<ul>
<li>说明：查找声明符</li>
<li>item：遍历数据的值</li>
<li>key：遍历数据的索引</li>
<li>attributes：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>innerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>outerHTML：当上类规则结果为selector选择器时可以通过调用此属性</li>
<li>通常形式：@json:data.tag.list（：[{name: '玄幻'},{name:'科幻'},{name:'古风'}]）@find:item.name == '古风'（输出 {name:'古风'}）</li>
<li>复杂情况下：@json:data.tag.list（：[{name: '玄幻'},{name:'科幻'},{name:'古风'}]）@map:{ var name = item.name;return name == '古风'; }（输出 {name:'古风'}）</li>
<li>调用attributes：@sel:class.item&gt;&gt;tag.span（：&lt;a title="玄幻"&gt;玄幻&lt;/a&gt;&lt;a title="科幻"&gt;科幻&lt;/a&gt;&lt;a title="古风"&gt;古风&lt;/a&gt;）@filter:item.attributes.title == '古风'（输出 古风（selector选择器））</li>
<li>调用innerHTML：@sel:class.item&gt;&gt;tag.span（：&lt;span&gt;玄幻&lt;/span&gt;&lt;span&gt;科幻&lt;/span&gt;&lt;span&gt;古风&lt;/span&gt;）@filter:item.innerHTML.trim() == '古风'（输出 古风（selector选择器））</li></ul></li>
<li>@replace:<ul>
<li>说明：单个替换声明符</li>
<li>&gt;&gt;：指向需要替换的内容</li>
<li>通常形式：@sync:return '玄幻小说'@replace:小说&gt;&gt;漫画（输出：玄幻漫画）</li>
<li>替换为空：@sync:return '玄幻小说'@replace:小说&gt;&gt;（输出：玄幻）</li></ul></li>
<li>@replaceAll:<ul>
<li>说明：全体替换声明符</li>
<li>&gt;&gt;：指向需要替换的内容</li>
<li>通常形式：@sync:return '玄幻小说科幻小说'@replaceAll:小说&gt;&gt;漫画（输出：玄幻漫画科幻漫画）</li>
<li>替换为空：@sync:return '玄幻小说科幻小说'@replaceAll:小说&gt;&gt;（输出：玄幻科幻）</li></ul></li>
<li>@split:<ul>
<li>说明：字符串切割为数组声明符</li>
<li>&gt;&gt;：指向数组第几项</li>
<li>通常形式：@sync:return '玄幻,科幻,古风'@split:,（输出：['玄幻','科幻','古风']）</li>
<li>指定第二项：@sync:return '玄幻,科幻,古风'@split:,&gt;&gt;1（输出：科幻）</li></ul></li>
<li>@string:<ul>
<li>说明：转换字符串声明符</li>
<li>通常形式：@sync:return ['玄幻','科幻','古风']@string:（输出：'玄幻,科幻,古风'）</li></ul></li>
<li>@dateFormat:<ul>
<li>说明：时间格式化声明符</li>
<li>通常形式：@sync:return 1695608527060@dateFormat:（输出：'2023-09-25 10:23:21'）</li>
<li>只要日期：@sync:return 1695608527060@dateFormat:yyyy-mm-dd（输出：'2023-09-25'）</li>
<li>只要时间：@sync:return 1695608527060@dateFormat:hh:mm:ss（输出：'10:23:21'）</li></ul></li>
<li>@join:<ul>
<li>说明：数组切割为字符串声明符</li>
<li>通常形式：@sync:return ['玄幻','科幻','古风']@join:;（输出：'玄幻;科幻;古风'）</li></ul></li>
<li>@trim:<ul>
<li>说明：去除首尾空格声明符</li>
<li>通常形式：@sync:return ' 这是一段2边有空格的文本 '@trim:（输出：'这是一段2边有空格的文本'）</li></ul></li>
<li>@have:<ul>
<li>说明：判断字符串是否包含指定字符串声明符</li>
<li>通常形式：@sync:return '这本小说已完结'@have:已完结（输出：true）</li></ul></li>
<li>@equal:<ul>
<li>说明：判断相等声明符</li>
<li>通常形式：@sync:return 500@equal:50（输出：false）</li></ul></li>
<li>@unequal:<ul>
<li>说明：判断不等声明符</li>
<li>通常形式：@sync:return 500@unequal:50（输出：true）</li></ul></li>
<li>@eval:<ul>
<li>说明：字符串转函数声明符</li>
<li>通常形式：@sync:return 'function () { return ['玄幻','科幻','古风'] }'@eval:（输出：['玄幻','科幻','古风']）</li></ul></li>
<li>@match:<ul>
<li>说明：取指定字符之间值声明符</li>
<li>&gt;&gt;：2个指定字符之间的连接符号</li>
<li>通常形式：@sync:return '你看过这本小说吗这是一本不错的小说'@match:小说&gt;&gt;小说（输出：'吗这是一本不错的'）</li></ul></li>
<li>@reverse:<ul>
<li>说明：数组取反声明符</li>
<li>通常形式：@sync:return ['玄幻','科幻','古风']@reverse:（输出：['古风','科幻','玄幻']）</li></ul></li>
<li>@relation:<ul>
<li>说明：url指定请求声明符</li>
<li>通常形式：detailUrl:"https://www.baidu.com/book/1231@relation:0"</li>
<li>指向第二个详情规则：detailUrl:"https://www.baidu.com/book/1231@relation:1"</li></ul></li>
<li>@type:<ul>
<li>说明：url指定资源类型声明符</li>
<li>novel：小说</li>
<li>comic：漫画</li>
<li>picture：图片</li>
<li>video：视频</li>
<li>short：短视频</li>
<li>music：音乐</li>
<li>audible：有声书</li>
<li>broadcast：广播</li>
<li>article：文章</li>
<li>live：直播</li>
<li>character：角色</li>
<li>gather：合集</li>
<li>通常形式：catalogUrl:"https://www.baidu.com/book/1231@type:novel"</li></ul></li>
<li>@method:<ul>
<li>说明：url指定请求方式声明符</li>
<li>get: GET请求</li>
<li>post: POST请求</li>
<li>通常形式：url:"https://www.baidu.com/category/1@method:post"</li></ul></li>
<li>@header:<ul>
<li>说明：url指定请求头部声明符</li>
<li>Charset：请求格式（utf-8 | gbk）</li>
<li>通常形式：url:"https://www.baidu.com/category/1@header:Host:'www.baidu.com'"</li>
<li>修改请求格式：url:"https://www.baidu.com/category/1@header:Host:'www.baidu.com',Charset:'gbk'"</li></ul></li>
<li>@params:<ul>
<li>说明：url指定请求参数声明符</li>
<li>通常形式：url:"https://www.baidu.com/category@method:post@params:page:1,sort:'hot'"</li></ul></li>
<li>示例：</li>
</ul>
<pre><code class="javascript language-javascript">{
    //这是一段获取标签得示例规则
    tag: "@sel:class.list&gt;&gt;class.tag@map:item.attributes.name@string:"
}
</code></pre>
<h1 id="-4">源规则特殊符号</h1>
<ul>
<li>{{}}<ul>
<li>说明：表示这是一个变量或方法，用于URL请求</li>
<li>使用："https://www.baidu.com?searchkey={{keyword}}&amp;p={{page}}"</li></ul></li>
<li>&lt;js&gt;&lt;/js&gt;<ul>
<li>说明：表示这是一段需要执行的规则（需要与@text:声明符配合使用）</li>
<li>使用："@text:你好啊这是一段链接&lt;js&gt;@sync:return 123&lt;/js&gt;"</li></ul></li>
<li>::<ul>
<li>说明：用于对地址命名</li>
<li>使用："仙侠::https://www.baidu.com/1"</li></ul></li>
<li>+:<ul>
<li>说明：用于对地址进行分隔</li>
<li>使用："仙侠::https://www.baidu.com/1+:科幻::https://www.baidu.com/2"</li></ul></li>
<li>?:<ul>
<li>说明：用于对地址分类</li>
<li>使用："小说分类?:仙侠::https://www.baidu.com/1+:科幻::https://www.baidu.com/2"</li></ul></li>
<li>$:<ul>
<li>说明：用于对分类进行分隔</li>
<li>使用："小说分类?:仙侠::https://www.baidu.com/1+:科幻::https://www.baidu.com/2$:漫画分类?:热血::https://www.baidu.com/3+:都市::https://www.baidu.com/4"</li></ul></li>
<li>&amp;es;<ul>
<li>说明：转义字符\（为了方便转义字符的存储，对一些转义字符做了命名）</li>
<li>使用："@sync:var str = 'n你好n';return str.match(/n(&amp;es;S*)n/)"</li></ul></li>
<li>&amp;wrap;<ul>
<li>说明：转义字符\n</li>
<li>使用："@sync:return ['这是一段文本内容','这是一段文本内容', '这是一段文本内容']@join:&amp;wrap;&amp;wrap;"</li></ul></li>
<li>&amp;nbsp;<ul>
<li>说明：转义字符空格</li></ul></li>
<li>&amp;tabu;<ul>
<li>说明：转义字符\t</li></ul></li>
<li>&amp;quot;<ul>
<li>说明：转义字符\"</li></ul></li>
<li>&amp;apos;<ul>
<li>说明：转义字符\'</li></ul></li>
<li>&amp;lt;<ul>
<li>说明：转义字符&lt;</li></ul></li>
<li>&amp;gt;<ul>
<li>说明：转义字符&gt;</li></ul></li>
<li>&amp;oe;<ul>
<li>说明：转义字符{</li></ul></li>
<li>&amp;ce;<ul>
<li>说明：转义字符}</li></ul></li>
</ul>
<h1 id="-5">源规则之动态域名</h1>
<ul>
<li>1、部分网站的域名会每天变更，为了避免经常去更改源文件的域名（href），因此可以填写动态域名规则（dynamic）</li>
<li>2、动态域名规则（dynamic）会导致每次请求都会去获取当前最新域名</li>
<li>3、当填写了动态域名规则（dynamic）后，基础域名（href）会作为请求动态域名规则的请求连接使用，可以像规则url那样填写基础域名（href）</li>
<li>示例如下：</li>
</ul>
<pre><code class="javascript language-javascript">{
    href: "https://www.baidu.com@method:post@params:timestamp:16896915",//填写动态域名规则（dynamic）后，可以按照规则url方式填写基础域名（href）
    dynamic: "@sel:tag.script&gt;&gt;content@replace:location.href=&gt;&gt;"//返回新域名，如果失败则返回基础域名（href）
}
</code></pre>
<h1 id="url">源规则之URL请求</h1>
<ul>
<li>1、一般形式如下：</li>
</ul>
<pre><code class="javascript language-javascript">{
    url: "https://www.baidu.com?searchkey={{keyowrd}}&amp;p={{page}}"
}
</code></pre>
<ul>
<li>2、@params:声明符（添加参数）：</li>
</ul>
<pre><code class="javascript language-javascript">{
    url: "https://www.baidu.com@params:searchkey:keyowrd,p:page"
}
</code></pre>
<ul>
<li>3、@method:声明符（POST请求）：</li>
</ul>
<pre><code class="javascript language-javascript">{
    url: "https://www.baidu.com@method:post@params:searchkey:keyowrd,p:page"
}
</code></pre>
<ul>
<li>4、@header:声明符（返回结果为GBK格式）：</li>
</ul>
<pre><code class="javascript language-javascript">{
    url: "https://www.baidu.com?searchkey={{keyowrd}}&amp;p={{page}}&amp;header:Charset:'gbk'"
}
</code></pre>
<ul>
<li>5、@sync:同步声明符（复杂情况下可使用）：</li>
</ul>
<pre><code class="javascript language-javascript">{
    url: "@sync:var url = 'https://www.baidu.com';var params = {searchkey:keyowrd,p:page};var method = 'post';var header = {Charset:'gbk'};return{url,params,method,header}"
}
</code></pre>
<ul>
<li>6、非常复杂情况下：</li>
</ul>
<pre><code class="javascript language-javascript">{
    Fnc: {
        requestSearch: function () {
            var url = 'https://www.baidu.com';
            var params = {searchkey:keyowrd,p:page};
            var method = 'post';
            var header = {Charset:'gbk'};
            return{url,params,method,header}
        }
    },
    search: [{
        url: "@sync:return Fnc.requestSearch()"
    }]
}
</code></pre>
<ul>
<li>7、设置UA（当源网站分手机站和PC站时使用，因为手机访问，一般会跳到手机站，导致获取数据错误）：</li>
</ul>
<pre><code class="javascript language-javascript">{
    ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36",//设置UA，表示从电脑端访问
    url: "https://www.baidu.com?searchkey={{keyowrd}}&amp;p={{page}}"
}
</code></pre>
<h1 id="-6">源规则之搜索</h1>
<ul>
<li>类型（type）<ul>
<li>novel 小说</li>
<li>comic 漫画</li>
<li>picture 图片</li>
<li>video 视频</li>
<li>short 短视频</li>
<li>music 音乐</li>
<li>audible 有声书</li>
<li>broadcast 广播</li>
<li>article 文章</li>
<li>live 直播</li>
<li>character 角色</li>
<li>gather 合集</li></ul></li>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>地址（url）<ul>
<li>keyword为关键字标识，通常形态为{{keyword}}，运行时会替换为搜索关键字</li>
<li>page为关键字标识，通常形态为{{page}}，page的初值为1也可以对page进行计算，如：{{(page-1)*20}}</li></ul></li>
<li>列表规则（list）<ul>
<li>只能是数组</li></ul></li>
<li>ID（id）<ul>
<li>资源唯一ID、非必填</li></ul></li>
<li>名称（title）</li>
<li>封面（cover）</li>
<li>创建者（creator）</li>
<li>头像（avatar）</li>
<li>简介（desc）</li>
<li>最新更新（latest）</li>
<li>风格（style）</li>
<li>标签（tag）</li>
<li>是否完结（isEnd）</li>
<li>是否VIP资源（isEnd）</li>
<li>更新时间（updateTime）</li>
<li>资源请求来源（referer）<ul>
<li>主要用于漫画和图片的referer验证</li></ul></li>
<li>三方字体文件链接（fontSrc）<ul>
<li>主要用于小说内容的自定义字体</li></ul></li>
<li>资源路径 图片、音频、视频链接（src）</li>
<li>阅读内容（content）<ul>
<li>小说为文本内容只能是字符串</li>
<li>漫画为图片列表只能是数组 如：['https://image.baidu/com/12381928391.jpg','https://image.baidu/com/12381928391.jpg']</li>
<li>文章为HTML文本只能是字符串 如：'&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;'</li></ul></li>
<li>自定义内容 阅读自定义页面（custom）<ul>
<li>用于小说自定义页面展示只能是数组 如：['&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;']</li></ul></li>
<li>分享链接（shareUrl）<ul>
<li>用于分享海报生成二维码的链接、不填默认取详情链接为分享链接</li></ul></li>
<li>详情链接（detailUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID时，将该链接生成ID</li></ul></li>
<li>目录链接（catalogUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>正文链接（contextUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID和详情链接时，将该链接生成ID</li></ul></li>
<li>评论链接（commentUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>推荐链接（recomeUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>角色链接（characterUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>弹幕链接（barrageUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>歌词链接（lyricUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>额外字段（extra）<ul>
<li>部分资源需要一些特殊字段才能请求，可以将这些字段储存在这个属性中，方便取用</li></ul></li>
<li>下一页链接（nextUrl）<ul>
<li>一些网站的分页请求并不依靠页码，而是请求一次再生成下一页链接，这时便需要用到该属性</li></ul></li>
</ul>
<h1 id="-7">源规则之发现</h1>
<ul>
<li>类型（type）<ul>
<li>novel 小说</li>
<li>comic 漫画</li>
<li>picture 图片</li>
<li>video 视频</li>
<li>short 短视频</li>
<li>music 音乐</li>
<li>audible 有声书</li>
<li>broadcast 广播</li>
<li>article 文章</li>
<li>live 直播</li>
<li>character 角色</li>
<li>gather 合集</li></ul></li>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>地址（url）<ul>
<li>page为关键字标识，通常形态为{{page}}，page的初值为1也可以对page进行计算，如：{{(page-1)*20}}</li>
<li>::为关键字标识，用于对地址命名，如："仙侠::https://www.baidu.com/1"</li>
<li>+:为关键字标识，用于对地址进行分隔，如："仙侠::https://www.baidu.com/1+:科幻::https://www.baidu.com/2"</li>
<li>?:为关键字标识，用于对地址进行分类，如："小说分类?:仙侠::https://www.baidu.com/1+:科幻::https://www.baidu.com/2"</li>
<li>$:为关键字标识，用于对地址分类进行分隔，如："小说分类?:仙侠::https://www.baidu.com/1+:科幻::https://www.baidu.com/2$:漫画分类?:热血::https://www.baidu.com/3+:都市::https://www.baidu.com/4"</li></ul></li>
<li>列表规则（list）<ul>
<li>只能是数组</li></ul></li>
<li>ID（id）<ul>
<li>资源唯一ID、非必填</li></ul></li>
<li>名称（title）</li>
<li>封面（cover）</li>
<li>创建者（creator）</li>
<li>头像（avatar）</li>
<li>简介（desc）</li>
<li>最新更新（latest）</li>
<li>风格（style）</li>
<li>标签（tag）</li>
<li>是否完结（isEnd）</li>
<li>是否VIP资源（isEnd）</li>
<li>更新时间（updateTime）</li>
<li>资源请求来源（referer）<ul>
<li>主要用于漫画和图片的referer验证</li></ul></li>
<li>三方字体文件链接（fontSrc）<ul>
<li>主要用于小说内容的自定义字体</li></ul></li>
<li>资源路径 图片、音频、视频链接（src）</li>
<li>阅读内容（content）<ul>
<li>小说为文本内容只能是字符串</li>
<li>漫画为图片列表只能是数组 如：['https://image.baidu/com/12381928391.jpg','https://image.baidu/com/12381928391.jpg']</li>
<li>文章为HTML文本只能是字符串 如：'&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;'</li></ul></li>
<li>自定义内容 阅读自定义页面（custom）<ul>
<li>用于小说自定义页面展示只能是数组 如：['&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;']</li></ul></li>
<li>分享链接（shareUrl）<ul>
<li>用于分享海报生成二维码的链接、不填默认取详情链接为分享链接</li></ul></li>
<li>详情链接（detailUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID时，将该链接生成ID</li></ul></li>
<li>目录链接（catalogUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>正文链接（contextUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID和详情链接时，将该链接生成ID</li></ul></li>
<li>评论链接（commentUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>推荐链接（recomeUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>角色链接（characterUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>弹幕链接（barrageUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>歌词链接（lyricUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>额外字段（extra）<ul>
<li>部分资源需要一些特殊字段才能请求，可以将这些字段储存在这个属性中，方便取用</li></ul></li>
<li>下一页链接（nextUrl）<ul>
<li>一些网站的分页请求并不依靠页码，而是请求一次再生成下一页链接，这时便需要用到该属性</li></ul></li>
</ul>
<h1 id="-8">源规则之随机</h1>
<ul>
<li>类型（type）<ul>
<li>novel 小说</li>
<li>comic 漫画</li>
<li>picture 图片</li>
<li>video 视频</li>
<li>short 短视频</li>
<li>music 音乐</li>
<li>audible 有声书</li>
<li>broadcast 广播</li>
<li>article 文章</li>
<li>live 直播</li>
<li>character 角色</li>
<li>gather 合集</li></ul></li>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>地址（url）<ul>
<li>page为关键字标识，通常形态为{{page}}，page的初值为1也可以对page进行计算，如：{{(page-1)*20}}</li>
<li>::为关键字标识，用于对地址命名，如："仙侠::https://www.baidu.com/1"</li>
<li>+:为关键字标识，用于对地址进行分隔，如："仙侠::https://www.baidu.com/1+:科幻::https://www.baidu.com/2"</li></ul></li>
<li>列表规则（list）<ul>
<li>只能是数组</li></ul></li>
<li>ID（id）<ul>
<li>资源唯一ID、非必填</li></ul></li>
<li>名称（title）</li>
<li>封面（cover）</li>
<li>创建者（creator）</li>
<li>头像（avatar）</li>
<li>简介（desc）</li>
<li>最新更新（latest）</li>
<li>风格（style）</li>
<li>标签（tag）</li>
<li>是否完结（isEnd）</li>
<li>是否VIP资源（isEnd）</li>
<li>更新时间（updateTime）</li>
<li>资源请求来源（referer）<ul>
<li>主要用于漫画和图片的referer验证</li></ul></li>
<li>三方字体文件链接（fontSrc）<ul>
<li>主要用于小说内容的自定义字体</li></ul></li>
<li>资源路径 图片、音频、视频链接（src）</li>
<li>阅读内容（content）<ul>
<li>小说为文本内容只能是字符串</li>
<li>漫画为图片列表只能是数组 如：['https://image.baidu/com/12381928391.jpg','https://image.baidu/com/12381928391.jpg']</li>
<li>文章为HTML文本只能是字符串 如：'&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;'</li></ul></li>
<li>自定义内容 阅读自定义页面（custom）<ul>
<li>用于小说自定义页面展示只能是数组 如：['&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;']</li></ul></li>
<li>分享链接（shareUrl）<ul>
<li>用于分享海报生成二维码的链接、不填默认取详情链接为分享链接</li></ul></li>
<li>详情链接（detailUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID时，将该链接生成ID</li></ul></li>
<li>目录链接（catalogUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>正文链接（contextUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID和详情链接时，将该链接生成ID</li></ul></li>
<li>评论链接（commentUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>推荐链接（recomeUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>角色链接（characterUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>弹幕链接（barrageUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>歌词链接（lyricUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>额外字段（extra）<ul>
<li>部分资源需要一些特殊字段才能请求，可以将这些字段储存在这个属性中，方便取用</li></ul></li>
<li>下一页链接（nextUrl）<ul>
<li>一些网站的分页请求并不依靠页码，而是请求一次再生成下一页链接，这时便需要用到该属性</li></ul></li>
</ul>
<h1 id="-9">源规则之详情</h1>
<ul>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>处理返回数据（response）<ul>
<li>处理一下返回数据</li></ul></li>
<li>名称（title）</li>
<li>封面（cover）</li>
<li>创建者（creator）</li>
<li>头像（avatar）</li>
<li>简介（desc）</li>
<li>最新更新（latest）</li>
<li>风格（style）</li>
<li>标签（tag）</li>
<li>是否完结（isEnd）</li>
<li>是否VIP资源（isEnd）</li>
<li>更新时间（updateTime）</li>
<li>资源请求来源（referer）<ul>
<li>主要用于漫画和图片的referer验证</li></ul></li>
<li>三方字体文件链接（fontSrc）<ul>
<li>主要用于小说内容的自定义字体</li></ul></li>
<li>资源路径 图片、音频、视频链接（src）</li>
<li>阅读内容（content）<ul>
<li>小说为文本内容只能是字符串</li>
<li>漫画为图片列表只能是数组 如：['https://image.baidu/com/12381928391.jpg','https://image.baidu/com/12381928391.jpg']</li>
<li>文章为HTML文本只能是字符串 如：'&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;'</li></ul></li>
<li>自定义内容 阅读自定义页面（custom）<ul>
<li>用于小说自定义页面展示只能是数组 如：['&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;']</li></ul></li>
<li>分享链接（shareUrl）<ul>
<li>用于分享海报生成二维码的链接、不填默认取详情链接为分享链接</li></ul></li>
<li>详情链接（detailUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID时，将该链接生成ID</li></ul></li>
<li>目录链接（catalogUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>正文链接（contextUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID和详情链接时，将该链接生成ID</li></ul></li>
<li>评论链接（commentUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>推荐链接（recomeUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>角色链接（characterUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>弹幕链接（barrageUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>歌词链接（lyricUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>额外字段（extra）<ul>
<li>部分资源需要一些特殊字段才能请求，可以将这些字段储存在这个属性中，方便取用</li></ul></li>
</ul>
<h1 id="-10">源规则之角色</h1>
<ul>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>列表规则（list）<ul>
<li>只能是数组</li></ul></li>
<li>ID（id）<ul>
<li>资源唯一ID、非必填</li></ul></li>
<li>名称（title）</li>
<li>封面（cover）</li>
<li>头像（avatar）</li>
<li>简介（desc）</li>
<li>分享链接（shareUrl）<ul>
<li>用于分享海报生成二维码的链接、不填默认取详情链接为分享链接</li></ul></li>
<li>详情链接（detailUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID时，将该链接生成ID</li></ul></li>
<li>目录链接（catalogUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>角色链接（characterUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>额外字段（extra）<ul>
<li>部分资源需要一些特殊字段才能请求，可以将这些字段储存在这个属性中，方便取用</li></ul></li>
</ul>
<h1 id="-11">源规则之推荐</h1>
<ul>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>列表规则（list）<ul>
<li>只能是数组</li></ul></li>
<li>ID（id）<ul>
<li>资源唯一ID、非必填</li></ul></li>
<li>名称（title）</li>
<li>封面（cover）</li>
<li>创建者（creator）</li>
<li>头像（avatar）</li>
<li>简介（desc）</li>
<li>最新更新（latest）</li>
<li>风格（style）</li>
<li>标签（tag）</li>
<li>是否完结（isEnd）</li>
<li>是否VIP资源（isEnd）</li>
<li>更新时间（updateTime）</li>
<li>资源请求来源（referer）<ul>
<li>主要用于漫画和图片的referer验证</li></ul></li>
<li>三方字体文件链接（fontSrc）<ul>
<li>主要用于小说内容的自定义字体</li></ul></li>
<li>资源路径 图片、音频、视频链接（src）</li>
<li>阅读内容（content）<ul>
<li>小说为文本内容只能是字符串</li>
<li>漫画为图片列表只能是数组 如：['https://image.baidu/com/12381928391.jpg','https://image.baidu/com/12381928391.jpg']</li>
<li>文章为HTML文本只能是字符串 如：'&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;'</li></ul></li>
<li>自定义内容 阅读自定义页面（custom）<ul>
<li>用于小说自定义页面展示只能是数组 如：['&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;']</li></ul></li>
<li>分享链接（shareUrl）<ul>
<li>用于分享海报生成二维码的链接、不填默认取详情链接为分享链接</li></ul></li>
<li>详情链接（detailUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID时，将该链接生成ID</li></ul></li>
<li>目录链接（catalogUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>正文链接（contextUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID和详情链接时，将该链接生成ID</li></ul></li>
<li>评论链接（commentUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>推荐链接（recomeUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>角色链接（characterUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>弹幕链接（barrageUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>歌词链接（lyricUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>额外字段（extra）<ul>
<li>部分资源需要一些特殊字段才能请求，可以将这些字段储存在这个属性中，方便取用</li></ul></li>
<li>下一页链接（nextUrl）<ul>
<li>一些网站的分页请求并不依靠页码，而是请求一次再生成下一页链接，这时便需要用到该属性</li></ul></li>
</ul>
<h1 id="-12">源规则之目录</h1>
<ul>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>列表规则（list）<ul>
<li>只能是数组</li></ul></li>
<li>ID（id）<ul>
<li>资源唯一ID、非必填</li></ul></li>
<li>名称（title）</li>
<li>封面（cover）</li>
<li>创建者（creator）</li>
<li>头像（avatar）</li>
<li>简介（desc）</li>
<li>最新更新（latest）</li>
<li>风格（style）</li>
<li>标签（tag）</li>
<li>是否完结（isEnd）</li>
<li>是否VIP资源（isEnd）</li>
<li>更新时间（updateTime）</li>
<li>资源请求来源（referer）<ul>
<li>主要用于漫画和图片的referer验证</li></ul></li>
<li>三方字体文件链接（fontSrc）<ul>
<li>主要用于小说内容的自定义字体</li></ul></li>
<li>资源路径 图片、音频、视频链接（src）</li>
<li>阅读内容（content）<ul>
<li>小说为文本内容只能是字符串</li>
<li>漫画为图片列表只能是数组 如：['https://image.baidu/com/12381928391.jpg','https://image.baidu/com/12381928391.jpg']</li>
<li>文章为HTML文本只能是字符串 如：'&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;'</li></ul></li>
<li>自定义内容 阅读自定义页面（custom）<ul>
<li>用于小说自定义页面展示只能是数组 如：['&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;']</li></ul></li>
<li>分享链接（shareUrl）<ul>
<li>用于分享海报生成二维码的链接、不填默认取详情链接为分享链接</li></ul></li>
<li>详情链接（detailUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID时，将该链接生成ID</li></ul></li>
<li>目录链接（catalogUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>正文链接（contextUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID和详情链接时，将该链接生成ID</li></ul></li>
<li>评论链接（commentUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>推荐链接（recomeUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>角色链接（characterUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>弹幕链接（barrageUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>歌词链接（lyricUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>额外字段（extra）<ul>
<li>部分资源需要一些特殊字段才能请求，可以将这些字段储存在这个属性中，方便取用</li></ul></li>
<li>下一页链接（nextUrl）<ul>
<li>一些网站的分页请求并不依靠页码，而是请求一次再生成下一页链接，这时便需要用到该属性</li></ul></li>
</ul>
<h1 id="-13">源规则之正文</h1>
<ul>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>处理返回数据（response）<ul>
<li>处理一下返回数据</li></ul></li>
<li>名称（title）</li>
<li>封面（cover）</li>
<li>创建者（creator）</li>
<li>头像（avatar）</li>
<li>简介（desc）</li>
<li>最新更新（latest）</li>
<li>风格（style）</li>
<li>标签（tag）</li>
<li>是否完结（isEnd）</li>
<li>是否VIP资源（isEnd）</li>
<li>更新时间（updateTime）</li>
<li>资源请求来源（referer）<ul>
<li>主要用于漫画和图片的referer验证</li></ul></li>
<li>三方字体文件链接（fontSrc）<ul>
<li>主要用于小说内容的自定义字体</li></ul></li>
<li>资源路径 图片、音频、视频链接（src）</li>
<li>阅读内容（content）<ul>
<li>小说为文本内容只能是字符串</li>
<li>漫画为图片列表只能是数组 如：['https://image.baidu/com/12381928391.jpg','https://image.baidu/com/12381928391.jpg']</li>
<li>文章为HTML文本只能是字符串 如：'&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;'</li></ul></li>
<li>自定义内容 阅读自定义页面（custom）<ul>
<li>用于小说自定义页面展示只能是数组 如：['&lt;div&gt;&lt;span&gt;这是一段文本&lt;/span&gt;&lt;img src="https://image.baidu/com/12381928391.jpg" width="100%"&gt;&lt;/div&gt;']</li></ul></li>
<li>分享链接（shareUrl）<ul>
<li>用于分享海报生成二维码的链接、不填默认取详情链接为分享链接</li></ul></li>
<li>详情链接（detailUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID时，将该链接生成ID</li></ul></li>
<li>目录链接（catalogUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>正文链接（contextUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li>
<li>不指定ID和详情链接时，将该链接生成ID</li></ul></li>
<li>评论链接（commentUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>推荐链接（recomeUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>角色链接（characterUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>弹幕链接（barrageUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>歌词链接（lyricUrl）<ul>
<li>@relation: 指向第几个请求 通常为@relation:0、表示指向请求第一个请求、不填默认请求第一个</li></ul></li>
<li>额外字段（extra）<ul>
<li>部分资源需要一些特殊字段才能请求，可以将这些字段储存在这个属性中，方便取用</li></ul></li>
<li>下一页链接（nextUrl）<ul>
<li>一些小说网站或者漫画网站可能存在一个章节的内容还会分页，将当前页的下一页放入该属性则继续请求下一页内容</li></ul></li>
</ul>
<h1 id="-14">源规则之评论</h1>
<ul>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>列表规则（list）<ul>
<li>只能是数组</li></ul></li>
<li>名称（title）</li>
<li>头像（avatar）</li>
<li>二级标题（subtitle）</li>
<li>评论内容（content）</li>
<li>别人回复该发言列表（subComments）<ul>
<li>只能是数组结构和评论结构一样</li></ul></li>
<li>该发言回复评论列表（masterComments）<ul>
<li>只能是数组结构和评论结构一样</li></ul></li>
<li>下一页链接（nextUrl）<ul>
<li>一些小说网站或者漫画网站可能存在一个章节的内容还会分页，将当前页的下一页放入该属性则继续请求下一页内容</li></ul></li>
</ul>
<h1 id="-15">源规则之弹幕</h1>
<ul>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>列表规则（list）<ul>
<li>只能是数组</li></ul></li>
<li>发送人名称（name）</li>
<li>头像（avatar）</li>
<li>发送内容（text）</li>
<li>发送内容颜色（color）</li>
<li>弹幕显示时间（time）</li>
</ul>
<h1 id="-16">源规则之歌词</h1>
<ul>
<li>UA（ua）<ul>
<li>User-Agent</li></ul></li>
<li>列表规则（list）<ul>
<li>只能是数组</li></ul></li>
<li>歌词文本（title）</li>
<li>歌词显示时间（time）</li>
</ul>
		</div>
	</body>
	<script>
		window.onload = function () {
			var query = window.location.search.substring(1)
			var skinMode = query.split('=')[1]
			var markdown = document.getElementsByClassName('markdown-body')[0]
			markdown.style.color = skinMode == 'default' ? '#333333' : '#f4f7f5'
			var pres = markdown.getElementsByTagName('pre')
			for ( var i = 0; i < pres.length; i++ ) {
				pres[i].style.backgroundColor = skinMode == 'default' ? '#f6f8fa' : '#737373'
			}
		}
	</script>
</html>